// 1. 获取数据库引用
const db = wx.cloud.database().collection("memory");
let num = 0;
Page({
  data: {
    // 被选中的图片路径 数组
    chooseImgs: [],
    // 文本域的内容
    textVal: ""

  },
  // 外网的图片的路径数组
  UpLoadImgs: [],
  time: "00:00:00",
  // 点击 “+” 选择图片
  handleChooseImg() {
    // 2 调用小程序内置的选择图片api
    wx.chooseImage({
      // 同时选中的图片的数量
      count: 9,
      // 图片的格式  原图  压缩
      sizeType: ['original', 'compressed'],
      // 图片的来源  相册  照相机
      sourceType: ['album', 'camera'],
      success: (result) => {
        //console.log(result.tempFilePaths);
        this.setData({
          // 图片数组 进行拼接 

          chooseImgs: [...this.data.chooseImgs, ...result.tempFilePaths]
        })
      }
    });

  },
  // 点击 自定义图片组件
  handleRemoveImg(e) {
    // 2 获取被点击的组件的索引
    const {
      index
    } = e.currentTarget.dataset;
    // 3 获取data中的图片数组
    let {
      chooseImgs
    } = this.data;
    // 4 删除元素
    chooseImgs.splice(index, 1);
    this.setData({
      chooseImgs
    })
  },
  // 文本域的输入的事件
  handleTextInput(e) {
    this.setData({
      textVal: e.detail.value
    })
  },
  // 提交按钮的点击
  handleFormSubmit() {
    // 1 获取文本域的内容 图片数组
    const {
      textVal,
      chooseImgs
    } = this.data;
    // 2 合法性的验证
    if (!textVal.trim()) {
      // 不合法
      wx.showToast({
        title: '输入不合法',
        icon: 'none',
        mask: true
      });
      return;
    }
    // 3 准备上传图片 到专门的图片服务器 
    // 上传文件的 api 不支持 多个文件同时上传  遍历数组 挨个上传 
    // 显示正在等待的图片
    wx.showLoading({
      title: "正在上传中",
      mask: true
    });

    // 判断有没有需要上传的图片数组

    if (chooseImgs.length != 0) {
      num = chooseImgs.length
      chooseImgs.forEach((v, i) => {
        wx.cloud.uploadFile({
          // 图片要上传到哪里
          cloudPath: new Date().getTime() + "." + v.split("").reverse().join("").split(".")[0].split("").reverse().join(""),
          filePath: v, // 文件路径
          success: (result) => {
            
            let url = result.fileID;
            this.UpLoadImgs.push(url);
           num--
            // 所有的图片都上传完毕了才触发  
            if (num === 0) {
              this.save();
            }
          }
        });
      })
    } else {
      this.save();
    }
  },
  //将数据保存到数据库
  save() {
    this.time = new Date().getTime();
    db.add({
      data: {
        time: this.time,
        img_path: this.UpLoadImgs,
        text_val: this.data.textVal,
        comment:[]
      },
      success: res => {
       // console.log("保存数据成功");
      },
      fail: err => console.log(err)
    })
    wx.hideLoading();
    wx.showToast({
      title: '上传成功',
    })
    console.log("把文本的内容和外网的图片数组 提交到后台中");
    //  提交都成功了
    // 重置页面
    this.setData({
      textVal: "",
      chooseImgs: []
    })
    // 返回上一个页面
    setTimeout(() => {
      wx.navigateBack({
        delta: 1
      });
    }, 1500)
  }
})